The present invention relates to a video decoding device and a video decoding method for decoding a coded video signal, and in particular, to a video decoding device and a video decoding method capable of reducing the deterioration of video data even when the coded video signal have been transferred through a communication line of low line quality.
Description of the Related Art
When a coded video signal is transferred through a transmission line of low line quality, the quality of a video signal which is obtained by decoding the coded video signal becomes lower than the original video signal due to errors occurring in the signal transfer.
For the elimination of the video signal deterioration, an error detection process (for detecting and determining points in the video signal to which errors have occurred) and a concealment process (for correcting pixel values at the error points and thereby concealing the errors) become necessary.
As methods for the error detection process, two methods are widely known. In a first error detection method, the error is detected based on the video decoding status or based on the decoded video data. In a second error detection method, error detection code (code for the error detection) is preliminarily included in the coded video signal to be transferred, and the error detection is executed by a device at the receiving end by use of the error detection code.
FIG. 1 is a block diagram showing a conventional video decoding device which executes the video decoding employing the first error detection method. Referring to FIG. 1, the video decoding device includes a packet partitioning section 201, a video decoding section 202, an invalid block judgment section 203 and a first invalid block concealment section 204. The video decoding section 202 includes a block data decoding section 205, a frame memory 206 and a second invalid block concealment section 207.
The packet partitioning section 201 of the video decoding device receives a coded video signal (input signal) 2000. The coded video signal 2000 is transferred to the packet partitioning section 201 in the form of a packet (TCP (Transmission Control Protocol) packet, UDP (User Datagram Protocol) packet, ATM (Asynchronous Transfer Mode) cell, etc.) containing a plurality of (10, for example) coded block data (coded block data units). Each of the coded block data units has been generated by a video encoding device by encoding a pixel block (i.e. an encoding unit of the video signal) of a frame (frame image). The packet partitioning section 201 which received the coded video signal 2000 (packet) partitions the packet into a plurality of coded block data units 2001 and sends the coded block data units 2001 to the block data decoding section 205 of the video decoding section 202.
The block data decoding section 205 which received the coded block data units 2001 decodes the coded block data units 2001 and stores the result of decoding (block data (block data units) 2002) in the frame memory 206.
When the video decoding for a block is impossible due to errors or when a coded block data unit 2001 for a block can not be obtained since a packet containing the coded block data unit 2001 does not reach, the second invalid block concealment section 207 obtains an appropriate (decoded) block data unit of a previous frame (previous block data unit 2005) which has been stored in the frame memory 206 and uses the obtained block data unit as a corrected block data unit.
The invalid block judgment section 203 judges whether or not each block (block data unit) of a frame (frame image) which has been stored in the frame memory 206 is an invalid block which has been decoded erroneously, and sends the judgment result 2008 to the first invalid block concealment section 204.
The first invalid block concealment section 204 calculates block data for the block (that has been judged by the invalid block judgment section 203 as an invalid block) based on block data units of blocks around the invalid block or based on a block data unit of an appropriate block in the previous frame, and sends the calculated block data unit 2010 to the frame memory 206.
By the above operation, decoded video data 2011, which has been obtained by the decoding process of the block data decoding section 205 and the concealment processes of the first invalid block concealment section 204 and the second invalid block concealment section 207, is outputted from the video decoding section 202.
FIG. 2 is a block diagram showing a conventional video decoding device which executes video decoding employing the second error detection method. Referring to FIG. 2, the video decoding device includes an error detection section 301, a packet partitioning section 302, a video decoding section 303 and an invalid block concealment section 304. The video decoding section 303 includes a block data decoding section 305 and a frame memory 306.
The coded video signal (input signal) 3000 which is supplied to the error detection section 301 in the form of a packet includes error detection code such as CRC (Cyclic Redundancy Check). The error detection section 301 judges whether an error has occurred to each packet or not by use of the error detection code contained in the packet, and sends a judgment signal 3002 (indicating the result of the judgment) and the packet 3001 (from which the error detection code has been removed) to the packet partitioning section 302.
The packet partitioning section 302 partitions the packet 3001 into blocks (coded block data units 3003). With regard to a packet to which the error has occurred, the packet partitioning section 302 informs the invalid block concealment section 304 about addresses of blocks corresponding to the packet by sending an address signal 3004 to the invalid block concealment section 304.
The block data decoding section 305 of the video decoding section 303 conducts decoding with regard to coded block data units 3003 that are normal, and stores the decoded block data units (block data units 3005) in the frame memory 306.
The invalid block concealment section 304 refers to the invalid block addresses 3004 supplied from the packet partitioning section 302, and calculates corrected values for each invalid block (that is, a block to which an error might have occurred) based on block data units of blocks around the invalid block or based on a block data unit of an appropriate block in the previous frame, and sends the calculated block data unit 3008 to the frame memory 306.
By the above operation, decoded video data 3009, which has been obtained by the decoding process of the block data decoding section 305 and the concealment processes of the invalid block concealment section 304, is outputted from the video decoding section 303.
However, in the conventional video decoding device of FIG. 1 which executes the video decoding employing the first error detection method, the invalid block judgment section 203 has to conduct the judgment for all the decoded blocks solely, therefore, erroneous judgment can occur in the judgment process with regard to blocks which have been decoded normally. Concretely, the invalid block judgment section 203 conducts the judgment by comparing pixel values on the edge of the block with pixel values of adjacent blocks, therefore, the judgment might be made erroneously when an outline (where the pixel value changes steeply) overlapped the edge of the block. Therefore, in the case of the conventional video decoding device of FIG. 1, misjudgment tends to occur in the judgment which is solely conducted by the invalid block judgment section 203 by use of the pixel values. Further, the load on the invalid block judgment section 203, which is required enormous throughput, is necessitated to be very heavy.
In the conventional video decoding device of FIG. 2 which executes the video decoding employing the second error detection method, the concealment process is conducted to all the blocks contained in the packet to which an error has been occurred. Therefore, as the length of the packet is made longer, the possibility of wasteful concealment processes for normal blocks increases. On the other hand, if the length of the packet is made shorter, the ratio of the error detection code in the packet increases and thereby the coding efficiency is necessitated to be low.